1. Field of Invention
The invention relates generally to digital image processing systems. More particularly, the invention provides techniques that provide for automatically synchronizing any of a number of associated multimedia assets in a distributed system.
2. Description of Relevant Art
When a user performs image operations using recently developed digital image processing programs such as Adobe Photoshop™ or PhotoDeluxe™, image operations are performed directly on the raw pixels of the image. In those cases where the user “saves” any or all of the changes, all edit operations that have been performed and saved are applied to each pixel in the image such that the original image at the pixel level is overwritten. In this case, the original image, also referred to as a “digital negative”, is forever lost. If the user wishes, however, to save the digital image, the user must save the changes to another file thereby preserving the original digital negative.
However, since there is no link or other type reference created between the newly modified image file and its associated digital negative, the user must manually link these two files. Such a situation is shown in FIG. 1 where a user 100 has used, for example, a digital camera 102 (either still or video) to take a digital photo which is usually stored in the digital camera 102 as a digital image file 106 in a particular format such as JPEG, GIF, TIFF etc. However since currently available consumer digital cameras have limited photo editing capabilities and storage capabilities, the user may choose to transfer the image file 106 to a computer 108, or other such device or devices, capable of performing the desired image editing operations in a timely manner.
Once the desired image editing operations (such as cropping, color correction, special effects filters, etc.) have been performed at the pixel level on the image file 106 (either stored on the computer 108 or still residing on the digital camera 102), the user saves those pixel level changes in a second image file 110 in those cases where the user wishes to retain the original photo. In those cases where the original photo is retained (as a digital negative) the user must link the image file 110 representing the edited version of the photo to the original unedited version of the photo represented by image file 106.
When only a few original photos each have a very limited number of associated edited versions, this approach, although inefficient and prone to error, may be acceptable. Unfortunately, however, when the number of original photos, and/or the number of variations increase even slightly, this manual linking approach quickly becomes a management nightmare.
Various conventional approaches to solving this problem have been put forth. One of the most successful, although still inadequate is represented by the suite of image editing software known as FlashPix™ developed by a consortium of companies comprising of the Digital Imaging Group (DIG). Even though FlashPix has managed to resolve some of the above described file management problems, this solution is encumbered by many additional problems.
For example, FlashPix is based on a complex, proprietary file format referred to as COM/“Structured Storage” which is very rigid regarding what operations can be non-destructively performed on the given photo. Unfortunately, it is not possible for a particular FlashPix file to reference many external (i.e., distributed) pieces such that FlashPix cannot directly support a distributed imaging architecture since pieces of an image must reside in only one structured storage file, regardless of its complexity. In this way, even if an application is only referencing one piece of a Structured Storage file, the entire file must be available thereby rendering it incapable of providing a highly desirable flexible distributed model.
In addition to the lack of distributedness, the flexibility of FlashPix and similarly structured applications is further compromised since it can only support specific resolutions (i.e., those that are a “power of two”) thereby severely restricting the applications for which it can be usefully applied.
On the Web at various on-line photo processing/distribution sites (such as PhotoNet.com, PhotoWorks.com, and others) and on-line photo sharing sites (such as PhotoPoint.com, Zing.com, and others), users are able to download thumbnails and higher-resolution photos. This invention solves several well known problems, that up until now do not have a general solution. First, the physical linking between the thumbnail and higher resolution photo must be managed manually, such as through the HTML or XML page (i.e. <IMG> tag in HTML). Unfortunately, this is not automatic and is prone to error. Further, it becomes much more complicated if more than two resolutions are needed, beyond the thumbnail and higher resolution image. The ability to download even higher resolution images, based on the user's network bandwidth, is highly desirable.
Once the user has downloaded one thumbnail, or higher resolution image, to the local computer or imaging computing device, there is no mechanism in place that allows the user to access other, possibly higher, resolutions of the thumbnail, without first manually accessing the web site (most likely by invoking Microsoft Internet Explorer or similar browsing application). What is desired is a mechanism, associated with or embedded inside the thumbnail that allows a client side application to directly access other resolutions of the image if available, without requiring the user to manually access it via a Web browser.
Even more importantly, there is no mechanism defined that allows a user to record various image processing operations for this image, referenced in the HTML, such that a higher-resolution image can be re-rendered if needed. In general, the thumbnail and higher resolution image must be processed (in an application such as Adobe Photoshop) so the modified image, with all applied operations, can be generated. This results in yet additional links between various image files if the original “digital negative” is to be retained.
An additional problem relates to the fact that if there are a number of associated image copies distributed amongst a group of interconnected devices and any one of the images is changed, then there is no way to automatically update, or synchronize, the others to coincide with the changed image. For example, if a particular digital image is updated to new version of the digital image, then all other related digital images must also be updated to the most current version.
Therefore, what is desired is an efficient method and apparatus that automatically synchronizes any of a group of distributed multimedia assets.